package com.finance.cooperate.common.utils;

import java.util.List;

/**
 * @ClassName DigitalUtils
 * @Description 数据处理工具类
 * @Author shen
 * @Date 2022/6/2 14:44
 * @Modify ...
 */
public final class DigitalUtils {


    /**
    * @Author shenanxin
    * @Description 计算数组的中位数
    * @Date 17:45 2023/10/19
    * @Param [numbers]
    * @return java.lang.String
    **/
    public static Double medianCalculate(List<Integer> numbers) {

        numbers.sort(Integer::compareTo);

        int size = numbers.size();
        double median;

        if (size % 2 == 1) {
            median = numbers.get(size / 2);
        } else {
            int mid1 = numbers.get(size / 2 - 1);
            int mid2 = numbers.get(size / 2);
            median = (mid1 + mid2) / 2.0;
        }

        return median;

    }


    /**
    * @Author shenanxin
    * @Description 判断安装天数所属时间切片位置
    * @Date 17:44 2023/10/19
    * @Param [arr, i]
    * @return int
    **/
    public static int appInstallTimeConvert(int[] arr, int i){

        //下一个值
        int i1=i;

        //最大值
        int i2;

        int maxValue = 0;

        for (int j = 0; j < arr.length; j++) {

            if (arr[j] > maxValue) {
                maxValue = arr[j];
            }

            if(arr[j] > i){//大于基本值
                i2 = arr[j];//赋max值
                if (i1 > i2 || i == i1){//第一次进来 i=i1<i2  所以把i2赋值给i1，以后i<i1 第二次进来 如果：i1>i2>i，则：所以把i2赋值给i1，否则不变
                    i1 = i2;
                }
            }
        }


        if (i1 > maxValue) {
            i1 = maxValue;
        }

        return i1;
    }



    public static void main(String[] args){
        int[] arr={44,45,450,5,43,43,78,1,434};


        System.out.println(appInstallTimeConvert(arr,2));
    }

}
